package com.example.showdemo.model;

import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;

import com.example.showdemo.IView;

public class HandleModel implements IModel {
    private IView view = null;
    private Handler handler = new Handler(Looper.getMainLooper());

    public void setView(IView view) {
        this.view = view;
    }

    // 接受到数据后，进行处理，这里设置了 3 秒的延迟，模拟网络请求处理数据的操作
    public void handleData(String data) {
        if (TextUtils.isEmpty(data)) {
            return;
        }

        view.dataHanding();
        handler.removeCallbacksAndMessages(null);
        // 延迟来模拟网络或者磁盘操作
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                //数据处理完成，通知 View 更新界面
                view.onDataHandled("handled data: $data");
            }
        }, 3000);
    }

    //接收到清空数据的事件，直接清空数据
    public void clearData() {
        handler.removeCallbacksAndMessages(null);
        // 数据清空后，通知 View 更新界面
        view.onDataHandled("");
    }
}
